Skip to content

buffer: byte consumers through scoped access; delete detached registry, latch and u32 cache (B2c part 1) - #12108

Merged
proggeramlug merged 23 commits into
mainfrom
buffer-b2c-consumers
Oct 6, 2026
Merged

proggeramlug merged 23 commits into
mainfrom
buffer-b2c-consumers

Conversation

@proggeramlug

@proggeramlug proggeramlug commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Refs #11919. Buffer slice B2c, part 1 (BUFFER-DESIGN.md; owner decision 85). Builds on B1 (#12103).

Removes:

Still to come (B4 + B4c, a separate lane): the single cell layout, the codegen switch, and the remaining 5 tables, 2 latches and 2 caches.

Tests (on main 899aecd):

  • runtime 5184/0; codegen, ffi and ext-zlib all pass;
  • stdlib 258 pass, with the same 2 thread-exit failures as main;
  • gap subset (buffer/typed/dataview/arraybuffer/zlib/crypto/tls/net/http/fs): 0 regressions;
  • byte, view, detach, transfer, concat and crypto witnesses: 16 sabotages red;
  • native AddressSanitizer witnesses: 13 sabotages red;
  • source gate: 9 sabotages red.

Programs: all 7 match node. tsc −0.01% and fastify −0.02% instructions; the others are within noise. The earlier full A/B on the pre-rebase base was flat or better on all 14 programs and kernels (worker_heavy −0.64% instructions, −1.8 MB RSS).

Ralph Küpper added 23 commits October 6, 2026 16:02
@proggeramlug
proggeramlug merged commit e87628e into main Oct 6, 2026
23 of 25 checks passed
@proggeramlug
proggeramlug deleted the buffer-b2c-consumers branch October 6, 2026 17:40
@coderabbitai

coderabbitai Bot commented Oct 6, 2026

Copy link
Copy Markdown

Review in Change Stack →

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 5cd9e059-010f-4628-a606-91e21b158fe3
📥 Commits

Reviewing files that changed from the base of the PR and between 899aecd and 1dea925.

⛔ Files ignored due to path filters (1)
  • scripts/buffer_b4_census_closed.tsv is excluded by !**/*.tsv
📒 Files selected for processing (91)
  • changelog.d/PENDING-buffer-b2c-b4.md
  • crates/perry-ext-http/src/server/http2_server/session.rs
  • crates/perry-ext-net/src/tls.rs
  • crates/perry-runtime/src/array/header.rs
  • crates/perry-runtime/src/array/iter_methods.rs
  • crates/perry-runtime/src/atomics.rs
  • crates/perry-runtime/src/bigint/convert.rs
  • crates/perry-runtime/src/buffer/backing.rs
  • crates/perry-runtime/src/buffer/bytes.rs
  • crates/perry-runtime/src/buffer/detach.rs
  • crates/perry-runtime/src/buffer/header.rs
  • crates/perry-runtime/src/buffer/view.rs
  • crates/perry-runtime/src/builtins/formatting.rs
  • crates/perry-runtime/src/builtins/formatting/array_buffer.rs
  • crates/perry-runtime/src/builtins/formatting/typed_array_equality.rs
  • crates/perry-runtime/src/builtins/globals.rs
  • crates/perry-runtime/src/bun_compat/mod.rs
  • crates/perry-runtime/src/bun_ffi/call.rs
  • crates/perry-runtime/src/bun_ffi/memory.rs
  • crates/perry-runtime/src/child_process/v8_serde.rs
  • crates/perry-runtime/src/child_process/value_util.rs
  • crates/perry-runtime/src/dgram/net.rs
  • crates/perry-runtime/src/fs/dir_glob_watch/watch.rs
  • crates/perry-runtime/src/fs/dirent.rs
  • crates/perry-runtime/src/fs/fd_ops.rs
  • crates/perry-runtime/src/fs/filehandle.rs
  • crates/perry-runtime/src/fs/mod.rs
  • crates/perry-runtime/src/fs/stream.rs
  • crates/perry-runtime/src/fs/stream/write_file_input.rs
  • crates/perry-runtime/src/gc/census.rs
  • crates/perry-runtime/src/gc/tests/buffer_b4.rs
  • crates/perry-runtime/src/gc/tests/buffer_side_tables.rs
  • crates/perry-runtime/src/gc/tests/mod.rs
  • crates/perry-runtime/src/gc/types.rs
  • crates/perry-runtime/src/json/stringify_buffer.rs
  • crates/perry-runtime/src/node_api_host/buffers.rs
  • crates/perry-runtime/src/node_stream/native_hooks.rs
  • crates/perry-runtime/src/node_submodules/blob.rs
  • crates/perry-runtime/src/node_submodules/consumers.rs
  • crates/perry-runtime/src/node_v8.rs
  • crates/perry-runtime/src/node_vm.rs
  • crates/perry-runtime/src/object/buffer_dispatch.rs
  • crates/perry-runtime/src/object/global_this_webassembly.rs
  • crates/perry-runtime/src/object/native_module_crypto_key_object.rs
  • crates/perry-runtime/src/object/native_module_crypto_random.rs
  • crates/perry-runtime/src/object/shape_rule3.rs
  • crates/perry-runtime/src/object/typed_array_proto_thunks.rs
  • crates/perry-runtime/src/os_process_stream_write.rs
  • crates/perry-runtime/src/os_process_stream_write_tests.rs
  • crates/perry-runtime/src/os_process_streams.rs
  • crates/perry-runtime/src/symbol.rs
  • crates/perry-runtime/src/symbol/constructors.rs
  • crates/perry-runtime/src/text.rs
  • crates/perry-runtime/src/thread/clone_read.rs
  • crates/perry-runtime/src/thread/clone_write.rs
  • crates/perry-runtime/src/tls.rs
  • crates/perry-runtime/src/typedarray/mod.rs
  • crates/perry-runtime/src/typedarray/thread_exit_tests.rs
  • crates/perry-runtime/src/url/node_compat.rs
  • crates/perry-runtime/src/wasi.rs
  • crates/perry-runtime/src/webassembly.rs
  • crates/perry-stdlib/src/crypto.rs
  • crates/perry-stdlib/src/crypto/bytes_contract_tests.rs
  • crates/perry-stdlib/src/crypto/kdf.rs
  • crates/perry-stdlib/src/crypto/random.rs
  • crates/perry-stdlib/src/crypto/sign.rs
  • crates/perry-stdlib/src/crypto/util.rs
  • crates/perry-stdlib/src/ethers.rs
  • crates/perry-stdlib/src/querystring.rs
  • crates/perry-stdlib/src/sqlite/backup.rs
  • crates/perry-stdlib/src/sqlite/bind.rs
  • crates/perry-stdlib/src/sqlite/node_db.rs
  • crates/perry-stdlib/src/sqlite/node_stmt_session.rs
  • crates/perry-stdlib/src/streams.rs
  • crates/perry-stdlib/src/streams/byob.rs
  • crates/perry-stdlib/src/string_decoder.rs
  • crates/perry-stdlib/src/tls.rs
  • crates/perry-stdlib/src/tls/module_api.rs
  • crates/perry-stdlib/src/webcrypto/key_object.rs
  • crates/perry-stdlib/src/webcrypto/util.rs
  • crates/perry-updater/src/core.rs
  • scripts/buffer_b4_gap.py
  • scripts/buffer_b4_validate.py
  • scripts/buffer_layout_baseline.json
  • scripts/check_buffer_layout.py
  • scripts/fixtures/buffer_b4_ecs_u32.ts
  • scripts/fixtures/buffer_b4_measurements.json
  • scripts/fixtures/buffer_b4_verification.json
  • scripts/gc_runtime_root_holders.json
  • scripts/run_lint_gates.sh
  • test-files/test_gap_buffer_b4_detach_during_zlib.ts
 _______________________________
< The only circle I like is CI. >
 -------------------------------
  \
   \   \
        \ /\
        ( )
      .( o ).
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant